home *** CD-ROM | disk | FTP | other *** search
/ Day Cry / Day Cry CD.bin / oh_towns / install / instlib.c < prev    next >
Text File  |  1994-09-20  |  9KB  |  348 lines

  1. /*************************************************************************
  2. *    âëâCâuâëâè
  3. *************************************************************************/
  4.  
  5. int        _puts_bold(int x, int y, int col, char *s);
  6.  
  7. /*************************************************************************
  8. *    âVâXâeâÇìsâNâèâA
  9. *************************************************************************/
  10.  
  11. int        syl_clear()
  12. {
  13.     char    *msg, tmp[80];
  14.  
  15.     SCN_wrtPage(1);
  16.     MOS_DEC();
  17.  
  18.     sprintf(tmp,"PRESENTED by %c%c", Gaiji_ohFMTOWNS>>8, Gaiji_ohFMTOWNS&0xFF );
  19.     msg = "ôVÉ░CD Vol.1 ö≥ù┤é╠è¬";
  20.  
  21.     SCN_boxf(0,464,639,479,PSET,ColMesh);
  22.     _puts_bold(           232       ,464  ,     PltNoWhite,msg);
  23.     SCN_puts(Fnt16x16,tmp,232+23*8+1,464+1,PSET,C_MBLACK  ,0);
  24.     SCN_puts(Fnt16x16,tmp,232+23*8  ,464  ,PSET,PltNoWhite,0);
  25.  
  26.     MOS_INC();
  27. }
  28.  
  29. /*************************************************************************
  30. *    âVâXâeâÇìsé╔ò╢ÄÜù±ò\Ī
  31. *************************************************************************/
  32.  
  33. int        syl_putf(char *form)
  34. {
  35.     char        tmp[256];
  36.     char       *ap;
  37.     int            n, x;
  38.  
  39.     va_start(ap,form);
  40.     vsprintf(tmp+6,form,ap);
  41.     va_end(ap);
  42.  
  43.     SCN_wrtPage(1);
  44.     MOS_DEC();
  45.  
  46.     SCN_boxf(0,464,639,479,PSET,ColMesh);
  47.  
  48.     EGB_textDirection(EgbPtr,0);                /* ò╢ÄÜò√îⁿ    */
  49.     EGB_textDisplayDirection(EgbPtr,0);            /* ò\Īò√îⁿ    */
  50.     EGB_textSpace(EgbPtr,0);                    /* ÄÜè╘        */
  51.     EGB_textZoom(EgbPtr,0,  8, 16 );            /* ANK        */
  52.     EGB_textZoom(EgbPtr,1, 16, 16 );            /* è┐ÄÜ        */
  53.     EGB_fontStyle(EgbPtr,1+4);                    /* ÄÜæ╠        */
  54.     EGB_color(EgbPtr,0,C_HGREEN);
  55.     EGB_color(EgbPtr,1,C_MBLACK);
  56.     EGB_paintMode(EgbPtr,0x022);
  57.     EGB_writeMode(EgbPtr,PSET);
  58.  
  59.     n = strlen(tmp+6);
  60.     x = (640 - n * 8) / 2;
  61.     _setWord(tmp+0,   x   );
  62.     _setWord(tmp+2, 464+15);
  63.     _setWord(tmp+4,   n   );
  64.     EGB_sjisString( EgbPtr, tmp);
  65.  
  66.     MOS_INC();
  67. }
  68.  
  69. int        _puts_bold(int x, int y, int col, char *s)
  70. {
  71.     char    para[256];
  72.  
  73.     EGB_textDirection(EgbPtr,0);                /* ò╢ÄÜò√îⁿ    */
  74.     EGB_textDisplayDirection(EgbPtr,0);            /* ò\Īò√îⁿ    */
  75.     EGB_textSpace(EgbPtr,0);                    /* ÄÜè╘        */
  76.     EGB_textZoom(EgbPtr,0,  8, 16 );            /* ANK        */
  77.     EGB_textZoom(EgbPtr,1, 16, 16 );            /* è┐ÄÜ        */
  78.     EGB_fontStyle(EgbPtr,1+4);                    /* ÄÜæ╠        */
  79.     EGB_color(EgbPtr,0,col     );
  80.     EGB_color(EgbPtr,1,C_MBLACK);
  81.     EGB_paintMode(EgbPtr,0x022);
  82.     EGB_writeMode(EgbPtr,PSET);
  83.  
  84.     _setWord(para+0, x    );
  85.     _setWord(para+2, y+15 );
  86.     _setWord(para+4, strlen(s));
  87.     strcpy(para+6,s);
  88.     EGB_sjisString( EgbPtr, para);
  89. }
  90.  
  91. char    *add_path_fn(char *path, char *fn)
  92. {
  93.     int        len;
  94.  
  95.     len = strlen(path);
  96.     if ( len == 0 || !FS_isDelim(path[len-1]) )
  97.         path[len++] = FsPathDelim;
  98.     strcpy( path + len, fn );
  99.     return (path);
  100. }
  101.  
  102. /*************************************************************************
  103. *    öwîiùpTIFFò\Ī
  104. *************************************************************************/
  105.  
  106. int        tif_load(char *fn)
  107. {
  108.     char    *img;
  109.  
  110.     SCN_wrtPage(0);
  111.     if ( (img = IMG_open()) != NULL )
  112.     {
  113.         IMG_setPage(img,0);                /* ò\Īâyü[âWÄwÆΦ        */
  114.         IMG_setAtt(img,IMG_ATT_PLTON);    /* âpâîâbâgÉ▌ÆΦæ«É½ON    */
  115.         IMG_setColor( img, C_MBLACK, C_MWHITE);
  116.         if ( IMG_load(img,fn) == NORMAL )
  117.         {
  118.             IMG_setPos(img,0,0);            /* ò\Īê╩ÆuòΓÉ│            */
  119.             EGB_color(EgbPtr,1,C_MBLACK);    /* öwîiÉF                */
  120.             EGB_clearScreen(EgbPtr);
  121.             EGB_paintMode(EgbPtr,0x22);
  122.             IMG_dsp(img);
  123.         }
  124.         IMG_close(img);
  125.     }
  126.     SCN_wrtPage(1);
  127.     return (NORMAL);
  128. }
  129.  
  130. /*************************************************************************
  131. *    TIFFò\Ī
  132. *************************************************************************/
  133.  
  134. int        tiflist_disp( char **list )
  135. {
  136.     int                i, x, y, ret, pixel, md, x0, y0;
  137.     char           *img;
  138.     short            fr[4];
  139.     char           *fn;
  140.  
  141.     SCN_wrtPage(1);
  142.     APL_save_desktop();
  143.     SCN_boxf(0,0,639,479,PSET,0);
  144.     SCN_wrtPage(0);
  145.  
  146.     for ( i = 0; list[i] != NULL; ++i )
  147.     {
  148.         fn = list[i];
  149.  
  150.         if ( (img = IMG_open()) != NULL )
  151.         {
  152.             IMG_setAtt(img,IMG_ATT_PLTON);    /* âpâîâbâgÉ▌ÆΦæ«É½ON    */
  153.             if ( IMG_load(img,fn) == NORMAL )
  154.             {
  155.                 IMG_getFr(img,fr);
  156.                 pixel = IMG_getPixel(img);
  157.                 switch ( pixel )
  158.                 {
  159.                     case  1:    /* âéâmâNâì    */
  160.                     case  4:    /* 16ÉF        */
  161.                         x0 = (640 - (fr[2] - fr[0] + 1)) / 2;
  162.                         y0 = (480 - (fr[3] - fr[1] + 1)) / 2;
  163.                         md = 3;
  164.                         break;
  165.                     case  8:    /* 256 ÉF    */
  166.                         x0 = (640 - (fr[2] - fr[0] + 1)) / 2;
  167.                         y0 = (480 - (fr[3] - fr[1] + 1)) / 2;
  168.                         md = 12;
  169.                         break;
  170.                     case 16:    /* 32768 ÉF    */
  171.                         if ( fr[2] - fr[0] + 1 <= 320 )
  172.                         {
  173.                             x0 = (320 - (fr[2] - fr[0] + 1)) / 2;
  174.                             y0 = (240 - (fr[3] - fr[1] + 1)) / 2;
  175.                             md = 10;
  176.                         } else
  177.                         {
  178.                             x0 = (512 - (fr[2] - fr[0] + 1)) / 2;
  179.                             y0 = (480 - (fr[3] - fr[1] + 1)) / 2;
  180.                             md = 17;
  181.                         }
  182.                         break;
  183.                     default:
  184.                         goto _TIF_ERR;
  185.                 }
  186.                 IMG_setPos(img,x0,y0);    /* ò\Īê╩ÆuòΓÉ│            */
  187.                 MOS_COFF();                /* â}âEâXâJü[â\âïÅ┴ïÄ    */
  188.  
  189.                 EGB_displayPage(EgbPtr,0,0);
  190.                 EGB_writePage(EgbPtr,0);
  191.                 EGB_clearScreen(EgbPtr);
  192.                 EGB_resolution(EgbPtr,0,md);    /* ëµû╩âéü[âhÉ▌ÆΦ    */
  193.                 if ( md == 3 || md == 10 )
  194.                 {
  195.                     EGB_resolution(EgbPtr,1,3);    /* ëµû╩âéü[âhÉ▌ÆΦ    */
  196.                     EGB_writePage(EgbPtr,1);
  197.                     EGB_clearScreen(EgbPtr);
  198.                 }
  199.  
  200.                 EGB_writePage(EgbPtr,0);
  201.                 if ( md == 10 )
  202.                 {
  203.                     EGB_displayStart(EgbPtr,2,2,2);
  204.                     EGB_displayStart(EgbPtr,3,320,240);
  205.                 }
  206.                 EGB_color(EgbPtr,1,0);
  207.                 EGB_clearScreen(EgbPtr);
  208.                 IMG_dsp(img);
  209.                 if ( md == 3 || md == 10 )
  210.                     EGB_displayPage(EgbPtr,1,3);
  211.                 else
  212.                     EGB_displayPage(EgbPtr,0,1);
  213.  
  214.                 _apl_wait(CLOCKS_PER_SEC * 8);
  215.                 while ( PD_getp(&x,&y) )
  216.                     ;
  217.             }
  218.             IMG_close(img);
  219.         }
  220.     }
  221.  
  222.     EGB_writePage(EgbPtr,0);
  223.     EGB_clearScreen(EgbPtr);
  224.  
  225.     SCN_sysReinit();
  226.     disp_desktop();
  227.     SCN_wrtPage(1);
  228.     APL_load_desktop();
  229.     syl_clear();
  230.  
  231.     return (NORMAL);
  232. }
  233.  
  234. int        mveplay(char *fnmve, int loop)
  235. {
  236.     char    para[256];
  237.  
  238.     sprintf(para,"-loop %d %s", loop, fnmve );
  239.  
  240.     exprun("/OH_TOWNS/DEMOTOOL/mveplay.exp", para );
  241.     return (0);
  242. }
  243.  
  244. int        exprun(char *fn, char *para)
  245. {
  246.     unsigned int    siz;
  247.     int                md;
  248.     char            tmp[256];
  249.     char           *dlgTxm;
  250.  
  251.     siz = APL_getFreeMem();
  252.     if ( siz < 2 * 1024 * 1024 )
  253.     {    /* âüâéâèòsæ½    */
  254.         dlgTxm = DlgTxm_open(ColBoxError);
  255.         DlgTxm_setTitle(dlgTxm,Fnt16x16, "OUT OF MEMORY");
  256.  
  257.         DlgTxm_putf( dlgTxm, Rom16x16, TXMDAT_ATT_CENTER,"");
  258.         DlgTxm_putf( dlgTxm, Rom16x16, TXMDAT_ATT_CENTER,
  259.             "âüâéâèòsæ½é╠é╜é▀Ä└ìsé┼é½é▄é╣é±üB" );
  260.         DlgTxm_putf( dlgTxm, Rom16x16, TXMDAT_ATT_CENTER,"");
  261.  
  262.         DlgTxm_setBtn( dlgTxm, Fnt16x16, 128, 20, C_MBLACK,
  263.             C_WHITE, C_HILIGHT, C_DARK, '\r', KA_EXEC, 0, "", 0, "OK : [Ä└ìs]");
  264.         DlgTxm_setSize(dlgTxm,480,48);
  265.         DlgTxm_setPosition(dlgTxm,DLGPOS_CENTER_OF_SCREEN);
  266.  
  267.         DlgTxm_start(dlgTxm);
  268.         DlgTxm_close(dlgTxm);
  269.         return (-1);
  270.     }
  271.     FS_chdrv( toupper(DirStart[0]) - 'A' );
  272.     FS_getDnam(tmp,fn);
  273.     add_path_fn(tmp,".");
  274.     FS_chdir(tmp);
  275.  
  276.     /* ëµû╩ò█æ╢    */
  277.     SCN_wrtPage(1);
  278.     APL_save_desktop();
  279.  
  280.     /* âlâCâeâBâuâéü[âhÄqâvâìâZâXâvâìâOâëâÇé╠ïNô«    */
  281.     md = APLPCL_SET_STARTPATH | APLPCL_SET_PCP;
  282.     AplDtaInit();
  283.     if ( para != NULL && *para != '\0' )
  284.     {
  285.         AplDtaSetStr("$MainArg","%s %s", fn, para);
  286.         if ( strlen(fn) + strlen(para) + 1 >= 128 )
  287.             md &= (~APLPCL_SET_PCP);
  288.     }
  289.     PCL_exec(fn,md);
  290.  
  291.     /* ëµû╩ì─É▌ÆΦ    */
  292.     SCN_sysReinit();
  293.     disp_desktop();
  294.     SCN_wrtPage(1);
  295.     APL_load_desktop();
  296.     syl_clear();
  297.  
  298.     return (NORMAL);
  299. }
  300.  
  301. /*************************************************************************
  302. *    Éαû╛ò\ĪüiâCâxâôâgÅêù¥è╓Éöüj
  303. *************************************************************************/
  304.  
  305. int        inst_help( int evNo, char *evDat, char *fn)
  306. {
  307.     char    tmp[256];
  308.  
  309.     FS_chdrv(toupper(DirStart[0]) - 'A');
  310.     sprintf(tmp,"%s.",DirStart);
  311.     FS_chdir(tmp);
  312.  
  313.     APL_textView(Rom16x16,608,391,17,fn,"HELP FILE : %s", fn);
  314.  
  315.     return (evNo);
  316. }
  317.  
  318. /*************************************************************************
  319. *    âCâôâXâgü[âïÅIù╣âüâbâZü[âW
  320. *************************************************************************/
  321.  
  322. int        install_end( char *soft_name, int err )
  323. {
  324.     char    *dlgTxm;
  325.     int        colbox;
  326.     char    *msg;
  327.  
  328.     msg = err == 0 ? "âCâôâXâgü[âïé¬ÅIéφéΦé▄é╡é╜üB"
  329.                    : "âCâôâXâgü[âïé╔Ä╕ösé╡é▄é╡é╜üB";
  330.  
  331.     colbox